perm filename IEFTP.H[11,HE] blob
sn#688216 filedate 1982-12-06 generic text, type T, neo UTF8
/*
* eftp.h
*
* Define EFTP data types, constants, etc.
*
* Jeffrey Mogul @ Stanford 28-January-1981
* - created
*
* Jeffrey Mogul @ Stanford 28 October 1982
* - changed EFTP_MAX_PACKET from 532 to 512; this is because
* there is apparently an unwritten law to this effect, and the
* larger packets were crashing the IFS.
*/
#include <puplib.h>
struct EftpChan { /* defines an eftp transfer's state */
unsigned short sequence; /* sequence number */
struct PupChan pchan; /* channel for transfer */
struct Port remport; /* port of other side */
int WaitTime; /* maximum waiting time */
char ef_mode; /* send/receive */
};
/*
* values for mode word.
*/
#define EFTPM_SEND 01
#define EFTPM_RECEIVE 02
#define EFTPM_BYTESWAP 04 /* w.r.t network standard byte order */
/*
* failure codes
*/
#define EFTP_ERROR (-101) /* random error */
#define EFTP_BADACK (-102) /* bad ack */
#define EFTP_ABORT (-103) /* transfer aborted */
#define EFTP_RESTART (-104) /* try from scratch */
#define EFTP_WAIT (-105) /* wait a while, then restart */
#define EFTP_OUTOFSYNCH (-106) /* sender is out of synch */
#define EFTP_ENDOFFILE (-107) /* end of received file (not error) */
/*
* EFTP Abort codes
*/
#define EFTPA_EXTSENDER 1 /* External Sender Abort */
#define EFTPA_EXTRECEIVER 2 /* External Receiver Abort */
#define EFTPA_RECBUSY 3 /* Receiver Busy Abort */
#define EFTPA_OUTOFSYNCH 4 /* Out of Synch Abort */
#define EFTPA_MISC 5 /* Misc Abort */
#define EFTPA_LONGWAIT 6 /* Long Wait Abort */
#define EFTPA_MEDWAIT 7 /* Medium Wait Abort */
#define EFTPA_SUSPREQ 8 /* Suspend Request Abort */
/*
* maximum packet contents
*/
#define EFTP_MAX_PACKET 512 /* cannot be more than 512 because a lot of
* Xerox code would break (e.g., IFS)
*/
/*
* Timeout constants
*/
#define EFTP_DALLYWAIT 5 /* wait for dally */
/*
* global error message, abort code, and wait times
*/
extern char EftpErrMsg[128];
extern unsigned short EftpAbortCode;
extern int EftpWaitTime;
/*
* recommended waiting times (seconds)
*/
#define EFTPW_RBUSY 10 /* wait time after ReceiverBusy */
#define EFTPW_LWAIT (5*60) /* wait time after LongWaitAbort */
#define EFTPW_MWAIT 60 /* wait time after MediumWaitAbort */